﻿DBCC USEROPTIONS --查看隔离级别

--SQL Query2 读未提交
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED --隔离级别
SELECT * FROM BangMoney --脏读

--SQL Query1 读已提交
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT * FROM BangMoney

--SQL Query2 可重复读	
UPDATE BangMoney SET Balance += 5 WHERE [Name] = N'肖' --无法更新，等待第一事务执行完成

--SQL Query2 幻影读
--X锁 INSERT插入的是新的数据
INSERT BangMoney VALUES(N'Ghost-4',100)  --插入一行数据

BEGIN TRANSACTION
UPDATE BangMoney SET Balance -= 10 WHERE [Name] = N'李' 

UPDATE BangMoney SET Balance -= 10 WHERE [Name] = N'肖' 

ROLLBACK

SELECT @@TRANCOUNT


GO
CREATE FUNCTION YzTable(@id INT,@name NVARCHAR(20))
RETURNS @t TABLE(Id INT,[Name] NVARCHAR(20))
--1.要有一个“表”变量 @t
--2.要有返回的“表”的定义
AS
BEGIN
	INSERT @t VALUES(@id,@name) --通过INSERT语句给返回值变量赋值
	RETURN						--只需要使用一个RETURN关键字即可
END
GO
SELECT * FROM YzTable(3,N'仙气')










